home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Extra 1996 #3 / AmigaPlus_CD-ROM-EXTRA_Nr.3.bin / aminet-spiele / zwei spieler / paragon / paragon.asc < prev    next >
Text File  |  1992-02-01  |  30KB  |  1,027 lines

  1. '------------------------------------------------------
  2. ' PARAGON by Volker Stepprath ©1991 by Depeche Software
  3. '------------------------------------------------------
  4. Set Buffer 110
  5. Dim MAB(10),RAB(8),HF$(14,14,1),KF$(38),SCHALTER(16),FILE$(50)
  6. Global FILE$(),MAB(),KF$(),HF$(),FIN,DISK
  7. Global MA,SPMO_A,STONE_A,ZM_A,ZS_A,TIME_A,PUN_A
  8. Global MB,SPMO_B,STONE_B,ZM_B,ZS_B,TIME_B,PUN_B
  9. Global SWP_AB,SPIELER,SPIELART
  10. Global RAB(),STEINANZAHL,ABXY$,ABXY2$,XALT,YALT,CX,CY,NOCROWN
  11. SOUND=1
  12. GAMES_GFX_TO_RAM
  13. MAINLOOP:
  14. EINSTELLUNG[SOUND]
  15. If STATUS=13 Then INFO : Goto MAINLOOP
  16. FIN=0 : NOCROWN=0 : Clear Key 
  17. If MAB(10)>1 and SOUND=1
  18.   For I=50 To 0 Step -1
  19.     Mvolume I : Wait 2
  20.   Next I
  21.   Music Off 
  22. End If 
  23. If MAB(10)=1 and SOUND>1
  24.   Music 1
  25.   For I=1 To 50
  26.     Mvolume I : Wait 3
  27.   Next I
  28. End If 
  29. SOUND=MAB(10)
  30. If STATUS=11 Then SPIELFELD : STEUERUNG : Goto MAINLOOP
  31. If STATUS=14 Then SPIELFELD : REPLAY : Goto MAINLOOP
  32. If STATUS=15
  33.   LADE_SPIELFELD
  34.   If STATUS=13
  35.     SPIELFELD
  36.     STEUERUNG
  37.     Goto MAINLOOP
  38.   End If 
  39.   If STATUS=16
  40.     Goto MAINLOOP
  41.   End If 
  42. End If 
  43. Procedure EINSTELLUNG[SOUND]
  44.   Shared SCHALTER(),STATUS
  45.   OPTION_MAIN:
  46.     Unpack 13 To 0 : Screen Hide : Limit Mouse 0,0 To 450,320
  47.     Reserve Zone 16 : Reset Zone : Restore 
  48.     For I=1 To 16
  49.       Read SCHALTER(I)
  50.       If I>13 Then I2=127
  51.       Set Zone I,45+I2,SCHALTER(I) To 54+I2,SCHALTER(I)+9
  52.     Next I
  53.     Ink 0,5 : STATUS=-1
  54.   OPTION_1:
  55.     For Y=1 To 10
  56.       Gosub OPTION_2
  57.     Next Y
  58.     If STATUS Then Proc BLEND
  59.     Ink 0,5 : STATUS=0
  60.     Do 
  61.       Repeat : Until Mouse Key
  62.       Y=Hzone(X Mouse,Y Mouse)
  63.       Gosub OPTION_2
  64.     Loop 
  65.   OPTION_2:
  66.     If Y<1 Then Return 
  67.     If Y>13 Then I2=172 Else I2=45
  68.     Put Block 14,I2,SCHALTER(Y)
  69.     Repeat 
  70.       If Y=1
  71.         Add MAB(1),1,1 To 4
  72.         If MAB(1)=1 : N$="Mouse     " : End If 
  73.         If MAB(1)=2 : N$="Cpu-Easy" : End If 
  74.         If MAB(1)=3 : N$="Cpu-Medium" : End If 
  75.         If MAB(1)=4 : N$="Cpu-Hard  " : End If 
  76.         SPMO_A=MAB(1) : Text 188,40,N$
  77.       End If 
  78.       If Y=2
  79.         If Mouse Key=1
  80.           Add MAB(2),1,5 To 196
  81.         Else 
  82.           Add MAB(2),-1,5 To 196
  83.         End If 
  84.         N$="0000" : N2$=Str$(MAB(2))-" " : Right$(N$,Len(N2$))=N2$
  85.         STONE_A=MAB(2) : Text 188,50,Right$(N$,3)
  86.       End If 
  87.       If Y=3
  88.         If Mouse Key=1
  89.           Add MAB(3),1,1 To 100
  90.         Else 
  91.           Add MAB(3),-1,1 To 100
  92.         End If 
  93.         N$="0000" : N2$=Str$(MAB(3))-" " : Right$(N$,Len(N2$))=N2$
  94.         If MAB(3)>99 : N$="Off    " : MAB(3)=0 : TIME_A=0 : Else TIME_A=-1 : End If 
  95.         ZM_A=MAB(3) : 
  96.         If MAB(3)>0
  97.           Text 188,60,Right$(N$,2)+" min."
  98.         Else 
  99.           Text 188,60,N$
  100.         End If 
  101.       End If 
  102.       If Y=4
  103.         Add MAB(4),1,1 To 4
  104.         If MAB(4)=1 : N$="Joystick  " : End If 
  105.         If MAB(4)=2 : N$="Cpu-Easy" : End If 
  106.         If MAB(4)=3 : N$="Cpu-Medium" : End If 
  107.         If MAB(4)=4 : N$="Cpu-Hard  " : End If 
  108.         SPMO_B=MAB(4) : Text 188,89,N$
  109.       End If 
  110.       If Y=5
  111.         If Mouse Key=1
  112.           Add MAB(5),1,5 To 196
  113.         Else 
  114.           Add MAB(5),-1,5 To 196
  115.         End If 
  116.         N$="0000" : N2$=Str$(MAB(5))-" " : Right$(N$,Len(N2$))=N2$
  117.         STONE_B=MAB(5) : Text 188,99,Right$(N$,3)
  118.       End If 
  119.       If Y=6
  120.         If Mouse Key=1
  121.           Add MAB(6),1,1 To 100
  122.         Else 
  123.           Add MAB(6),-1,1 To 100
  124.         End If 
  125.         N$="0000" : N2$=Str$(MAB(6))-" " : Right$(N$,Len(N2$))=N2$
  126.         If MAB(6)>99 : N$="Off    " : MAB(6)=0 : TIME_B=0 : Else TIME_B=-1 : End If 
  127.         ZM_B=MAB(6) : 
  128.         If MAB(6)>0
  129.           Text 188,109,Right$(N$,2)+" min."
  130.         Else 
  131.           Text 188,109,N$
  132.         End If 
  133.       End If 
  134.       If Y=7
  135.         If Mouse Key=1
  136.           Add MAB(7),1,1 To 197
  137.         Else 
  138.           Add MAB(7),-1,1 To 197
  139.         End If 
  140.         N$="0000" : N2$=Str$(MAB(7))-" " : Right$(N$,Len(N2$))=N2$
  141.         If MAB(7)>196 : N$="Off" : MAB(7)=0 : End If 
  142.         SWP_AB=MAB(7) : Text 188,139,Right$(N$,3)
  143.       End If 
  144.       If Y=8
  145.         Add MAB(8),1,1 To 2
  146.         If MAB(8)=1 : N$="Tradition" Else N$="Marathon " : End If 
  147.         SPIELART=MAB(8) : Text 188,149,N$
  148.       End If 
  149.       If Y=9
  150.         Add MAB(9),1,1 To 2
  151.         If MAB(9)=1 : N$="One" Else N$="Two" : End If 
  152.         SPIELER=MAB(9) : Text 188,159,N$
  153.       End If 
  154.       If Y=10
  155.         Add MAB(10),1,1 To 3
  156.         If MAB(10)=1 : N$="Music" : End If 
  157.         If MAB(10)=2 : N$="Sfx  " : End If 
  158.         If MAB(10)=3 : N$="Off" : End If 
  159.         Text 188,169,N$
  160.       End If 
  161.       If Y=11
  162.         MA=Rnd(37) : MB=Rnd(37) : PUN_A=0 : PUN_B=0
  163.         ZS_A=0 : ZS_B=0 : ABXY2$="" : ABXY$=""
  164.         For I=1 To 14
  165.           For I2=1 To 14
  166.             HF$(I,I2,1)="O"
  167.           Next I2
  168.         Next I
  169.         STATUS=Y : Fade 2 : Wait 32 : Pop Proc
  170.       End If 
  171.       If Y=12
  172.         MAB(1)=0 : MAB(2)=4 : MAB(3)=101
  173.         MAB(4)=0 : MAB(5)=4 : MAB(6)=101
  174.         MAB(7)=198 : MAB(8)=2 : MAB(9)=2 : MAB(10)=3
  175.         Repeat : Until Mouse Key=0
  176.         Put Block 15,I2,SCHALTER(Y)
  177.         Goto OPTION_1
  178.       End If 
  179.       If Y=13
  180.         STATUS=Y : Fade 2 : Wait 32 : Pop Proc
  181.       End If 
  182.       If Y=14
  183.         TIME_A=0 : TIME_B=0
  184.         STONE_A=RAB(0) : STONE_B=RAB(1) : ZM_A=0 : ZM_B=0 : ZS_A=0 : ZS_B=0
  185.         SWP_AB=RAB(2) : MAB(7)=RAB(2) : SPIELART=RAB(3) : SPIELER=RAB(4) : SPMO_A=0
  186.         PUN_A=RAB(7) : PUN_B=RAB(8) : MA=RAB(5)-1 : MB=RAB(6)-1 : STEINANZAHL=0
  187.         ABXY$="" : STATUS=Y : Fade 2 : Wait 32 : Pop Proc
  188.       End If 
  189.       If Y=15
  190.         STATUS=Y : DISK=0 : Fade 2 : Wait 32 : Pop Proc
  191.       End If 
  192.       If Y=16
  193.         If SOUND=1
  194.           For I=50 To 0 Step -1 : Mvolume I : Wait 3 : Next I
  195.           Music Off 
  196.         End If 
  197.         Fade 3 : Wait 50 : Erase 3 : Erase 5 : Erase 15 : Erase 16 : System 
  198.       End If 
  199.       If Not STATUS Then Wait 6
  200.     Until Mouse Key=0
  201.     Put Block 15,I2,SCHALTER(Y)
  202.   Return 
  203.   Data 32,42,52,81,91,101,131,141,151,161,190,200,210,190,200,210
  204. End Proc
  205. Procedure STEUERUNG
  206.   RAB(0)=MAB(2) : RAB(1)=MAB(5) : RAB(2)=MAB(7) : RAB(3)=MAB(8)
  207.   RAB(4)=MAB(9) : RAB(5)=MA : RAB(6)=MB
  208.   If TIME_A or TIME_B Then Every 40 Proc ZEIT : Every On 
  209.   Do 
  210.     If SPMO_A=1 and SPIELER=1
  211.       Repeat 
  212.         A$=Inkey$
  213.         If Asc(A$)>0
  214.           If Asc(A$)=27 or Asc(A$)=115 : FIN=-1 : End If 
  215.           If Asc(A$)=104 : Proc HELFE_MIR : X=CX*16 : Y=CY*16 : Exit : End If 
  216.           If A$=Chr$(112) : Proc PAUSE : End If 
  217.         End If 
  218.         Exit If FIN,2
  219.         X=X Screen(X Mouse) : Y=Y Screen(Y Mouse)
  220.       Until Mouse Key
  221.       X=X/16*16/16 : Y=Y/16*16/16
  222.       XALT=X*16 : YALT=Y*16
  223.       Proc SETZE_STEIN[X,Y]
  224.     End If 
  225.     If SPMO_A>1 and SPIELER=1
  226.       A$=Inkey$
  227.       If A$<>""
  228.         If A$=Chr$(27) or Asc(A$)=115 : FIN=-1 : End If 
  229.         If A$=Chr$(112) : Proc PAUSE : End If 
  230.       End If 
  231.       Exit If FIN
  232.       Proc CPU_THINK
  233.       Proc MAUSMOVE[CX*16,CY*16]
  234.       Proc SETZE_STEIN[CX,CY]
  235.     End If 
  236.     If SPMO_B=1 and SPIELER=2
  237.       X=XALT/16 : Y=YALT/16
  238.       Repeat 
  239.         A$=Inkey$
  240.         If Asc(A$)>0
  241.           If A$=Chr$(27) or Asc(A$)=115 : FIN=-1 : End If 
  242.           If Asc(A$)=104 : Proc HELFE_MIR : X=CX : Y=CY : Exit : End If 
  243.           If A$=Chr$(112) : Proc PAUSE : End If 
  244.         End If 
  245.         Exit If FIN,2
  246.         If Jleft(1) and X>1 : Dec X : Proc MAUSMOVE[X*16,Y*16] : Wait 1 : End If 
  247.         If Jright(1) and X<14 : Inc X : Proc MAUSMOVE[X*16,Y*16] : Wait 1 : End If 
  248.         If Jup(1) and Y>1 : Dec Y : Proc MAUSMOVE[X*16,Y*16] : Wait 1 : End If 
  249.         If Jdown(1) and Y<14 : Inc Y : Proc MAUSMOVE[X*16,Y*16] : Wait 1 : End If 
  250.       Until Fire(1)=-1
  251.       Proc SETZE_STEIN[X,Y]
  252.     End If 
  253.     If SPMO_B>1 and SPIELER=2
  254.       A$=Inkey$
  255.       If A$<>""
  256.         If A$=Chr$(27) or Asc(A$)=115 : FIN=-1 : End If 
  257.         If A$=Chr$(112) : Proc PAUSE : End If 
  258.       End If 
  259.       Exit If FIN
  260.       Proc CPU_THINK
  261.       Proc MAUSMOVE[CX*16,CY*16]
  262.       Proc SETZE_STEIN[CX,CY]
  263.     End If 
  264.   Loop 
  265.   Every Off 
  266.   Clear Key 
  267.   ABXY$=ABXY$+"*" : ABXY2$=ABXY$ : RAB(7)=PUN_A : RAB(8)=PUN_B
  268.   If Asc(A$)=0
  269.     Proc FINITO
  270.     Proc STATISTIK
  271.   End If 
  272.   If Asc(A$)=27
  273.     Proc FINITO
  274.   End If 
  275.   If Asc(A$)=115
  276.     Proc TILES[98,2,259,35,45]
  277.     Wait Key : Del Cblock 
  278.     Screen Close 1
  279.     Fade 2 : Wait 32
  280.     DISK=-1
  281.     Proc LADE_SPIELFELD
  282.     Fade 2 : Wait 32
  283.     Pop Proc
  284.   End If 
  285.   Proc URSPRUNG
  286. End Proc
  287. Procedure SPIELFELD
  288.   Unpack 15 To 0 : Screen Hide 
  289.   Limit Mouse 149,63 To 358,271
  290.   Proc KLEIN_A : Proc KLEIN_B
  291.   N$="000" : Right$(N$,Len(Str$(ZM_A)-" "))=Str$(ZM_A)-" "
  292.   A$="000" : Right$(A$,Len(Str$(ZM_B)-" "))=Str$(ZM_B)-" "
  293.   For I=2 To 3
  294.     If ZM_A or ZS_A : Put Block 1+Val(Mid$(N$,I,1)),281+(I-1)*5,76 : End If 
  295.     If ZM_B or ZS_B : Put Block 1+Val(Mid$(A$,I,1)),281+(I-1)*5,172 : End If 
  296.   Next I
  297.   N$="000" : Right$(N$,Len(Str$(ZS_A)-" "))=Str$(ZS_A)-" "
  298.   A$="000" : Right$(A$,Len(Str$(ZS_B)-" "))=Str$(ZS_B)-" "
  299.   For I=2 To 3
  300.     If ZS_A or ZM_A : Put Block 1+Val(Mid$(N$,I,1)),296+(I-1)*5,76 : End If 
  301.     If ZS_B or ZM_B : Put Block 1+Val(Mid$(A$,I,1)),296+(I-1)*5,172 : End If 
  302.   Next I
  303.   N$="00000" : Right$(N$,Len(Str$(STONE_A)-" "))=Str$(STONE_A)-" "
  304.   A$="00000" : Right$(A$,Len(Str$(STONE_B)-" "))=Str$(STONE_B)-" "
  305.   For I=1 To 5
  306.     Put Block 1+Val(Mid$(N$,I,1)),281+I*5,83
  307.     Put Block 1+Val(Mid$(A$,I,1)),281+I*5,179
  308.   Next I
  309.   N$="000000" : Right$(N$,Len(Str$(PUN_A)-" "))=Str$(PUN_A)-" "
  310.   A$="000000" : Right$(A$,Len(Str$(PUN_B)-" "))=Str$(PUN_B)-" "
  311.   For I=2 To 6
  312.     Put Block 1+Val(Mid$(N$,I,1)),281+(I-1)*5,90
  313.     Put Block 1+Val(Mid$(A$,I,1)),281+(I-1)*5,186
  314.   Next I
  315.   STEINANZAHL=0
  316.   For I=1 To 14
  317.     For I2=1 To 14
  318.       HF$(I,I2,0)=HF$(I,I2,1)
  319.       If HF$(I,I2,0)<>"O"
  320.         If HF$(I,I2,0)="A" : Put Block 11,I*16+1,I2*16+1 : Inc STEINANZAHL : End If 
  321.         If HF$(I,I2,0)="B" : Put Block 12,I*16+1,I2*16+1 : Inc STEINANZAHL : End If 
  322.         If HF$(I,I2,0)="V" : Put Block 16,I*16-1,I2*16-1 : Inc STEINANZAHL : End If 
  323.       Else 
  324.         HF$(I,I2,0)="O"
  325.       End If 
  326.     Next I2
  327.   Next I
  328.   If SPIELER=1 Then Put Block 11,278,217 Else Put Block 12,278,217
  329.   X Mouse=X Hard(21) : Y Mouse=Y Hard(21) : XALT=16 : YALT=16
  330.   Proc BLEND
  331.   Unpack 16 To 1
  332.   Screen To Front 0 : Screen 0
  333.   If SPMO_A>0 Then Proc TILES[0,70,161,103,45] Else Proc TILES[162,36,290,69,62]
  334.   Colour 16,$FFF : Colour 17,$FFF : Colour 18,$FFF
  335.   Wait Key 
  336.   If MAB(10)=2 Then Sam Play 3,3,8300 : Wait 40
  337.   Put Cblock 1,45,109 : Del Cblock 
  338. End Proc
  339. Procedure KLEIN_A
  340.   Add MA,1,1 To 38 : Ink 0
  341.   For I=1 To 3
  342.     For I2=1 To 3
  343.        Inc L
  344.        If Mid$(KF$(MA),L,1)="S"
  345.          Put Block 11,245+I2*16,1+I*16
  346.        Else 
  347.          Bar 245+I2*16,1+I*16 To 253+I2*16,10+I*16
  348.        End If 
  349.      Next I2
  350.    Next I
  351. End Proc
  352. Procedure KLEIN_B
  353.   Add MB,1,1 To 38 : Ink 0
  354.   For I=1 To 3
  355.     For I2=1 To 3
  356.        Inc L
  357.        If Mid$(KF$(MB),L,1)="S"
  358.          Put Block 12,245+I2*16,97+I*16
  359.        Else 
  360.          Bar 245+I2*16,97+I*16 To 253+I2*16,106+I*16
  361.        End If 
  362.      Next I2
  363.    Next I
  364. End Proc
  365. Procedure SETZE_STEIN[X,Y]
  366.   If X>14 or X<1 or Y>14 or Y<1 Then Pop Proc
  367.   If HF$(X,Y,0)<>"O" and Asc(HF$(X,Y,0))<>0 Then Pop Proc
  368.   If MAB(10)=2 Then Sam Play 2,2,28000
  369.   N$="00000"
  370.   If SPIELER=1
  371.     Put Block 11,X*16+1,Y*16+1
  372.     HF$(X,Y,0)="A"
  373.     Dec STONE_A : Right$(N$,Len(Str$(STONE_A)-" "))=Str$(STONE_A)-" "
  374.     For I=1 To 5
  375.       Put Block 1+Val(Mid$(N$,I,1)),281+I*5,83
  376.     Next I
  377.     Proc TESTFELD
  378.     Put Block 12,278,217
  379.     If STONE_B=0 : FIN=-1 : End If 
  380.     SPIELER=2
  381.   Else 
  382.     Put Block 12,X*16+1,Y*16+1
  383.     HF$(X,Y,0)="B"
  384.     Dec STONE_B : Right$(N$,Len(Str$(STONE_B)-" "))=Str$(STONE_B)-" "
  385.     For I=1 To 5
  386.       Put Block 1+Val(Mid$(N$,I,1)),281+I*5,179
  387.     Next I
  388.     Proc TESTFELD
  389.     Put Block 11,278,217
  390.     If STONE_A=0 : FIN=-1 : End If 
  391.     SPIELER=1
  392.   End If 
  393.   Inc STEINANZAHL
  394.   If SWP_AB Then Proc TAUSCHE_AB
  395.   If STEINANZAHL=196 Then FIN=-1
  396.   If STEINANZAHL>140 Then Proc CHANCE_CROWN
  397.   ABXY$=ABXY$+Chr$(X+64)+Chr$(Y+64)
  398. End Proc
  399. Procedure TESTFELD
  400. Every Off 
  401. Repeat 
  402.   If SPIELER=1 Then A$="A" : N$=KF$(MA) Else A$="B" : N$=KF$(MB)
  403.   STATUS=0
  404.   For I=1 To 12
  405.     For I2=1 To 12
  406.       W=Asc(HF$(I2,I,0))
  407.       If W=Asc(A$) or W=80
  408.         A=0
  409.         For L=0 To 2
  410.           For L2=0 To 2
  411.             Inc A : W=Asc(HF$(I2+L2,I+L,0))
  412.             If Mid$(N$,A,1)="S" and W=Asc(A$) or W=80
  413.               N2$=N2$+"S"
  414.             Else 
  415.               N2$=N2$+"O"
  416.             End If 
  417.           Next L2
  418.         Next L
  419.         A=0
  420.         If N2$=N$
  421.           For L=0 To 2
  422.             For L2=0 To 2
  423.               Inc A
  424.               If Mid$(N$,A,1)="S"
  425.                 Put Block 13,(I2+L2)*16+1,(I+L)*16+1
  426.                 HF$(I2+L2,I+L,0)="P" : STATUS=-1
  427.               End If 
  428.             Next L2
  429.           Next L
  430.           A=0
  431.         End If 
  432.         N2$=""
  433.       End If 
  434.     Next I2
  435.   Next I
  436.   If STATUS
  437.     For I=1 To 14
  438.       For I2=1 To 14
  439.         If HF$(I,I2,0)="P"
  440.           If SPIELART=1 : L2=10 : HF$(I,I2,0)="V" Else L2=5 : HF$(I,I2,0)="O" : Dec STEINANZAHL : End If 
  441.           If MAB(10)=2 : Sam Play 1,1,9800 : End If 
  442.           For L=0 To L2
  443.             Wait 3
  444.             Screen Copy 1,162+L*13,70,175+L*13,82 To 0,I*16-1,I2*16-1
  445.           Next L
  446.           If L2=5 : Wait 5 : Plot I*16+5,I2*16+5,0 : End If 
  447.           N$="00000" : A$=N$
  448.           If SPIELER=1
  449.             Inc STONE_A
  450.             For A=1 To 5
  451.               Right$(A$,Len(Str$(STONE_A)-" "))=Str$(STONE_A)-" "
  452.               Put Block 1+Val(Mid$(A$,A,1)),281+A*5,83
  453.             Next A
  454.             If ABXY2$=""
  455.               Add PUN_A,25 : N$="000000" : A$=N$
  456.               For A=2 To 6
  457.                 Right$(N$,Len(Str$(PUN_A)-" "))=Str$(PUN_A)-" "
  458.                 Put Block 1+Val(Mid$(N$,A,1)),281+(A-1)*5,90
  459.               Next A
  460.             End If 
  461.           Else 
  462.             Inc STONE_B
  463.             For A=1 To 5
  464.               Right$(A$,Len(Str$(STONE_B)-" "))=Str$(STONE_B)-" "
  465.               Put Block 1+Val(Mid$(A$,A,1)),281+A*5,179
  466.             Next A
  467.             If ABXY2$=""
  468.               Add PUN_B,25 : N$="000000" : A$=N$
  469.               For A=2 To 6
  470.                 Right$(N$,Len(Str$(PUN_B)-" "))=Str$(PUN_B)-" "
  471.                 Put Block 1+Val(Mid$(N$,A,1)),281+(A-1)*5,186
  472.               Next A
  473.             End If 
  474.           End If 
  475.         End If 
  476.       Next I2
  477.     Next I
  478.     If SPIELER=1 : Proc KLEIN_A Else KLEIN_B : End If 
  479.   End If 
  480. Until STATUS=0
  481. Repeat : Until Mouse Key=0
  482. If TIME_A or TIME_B Then Every 40 Proc ZEIT
  483. End Proc
  484. Procedure TAUSCHE_AB
  485.   Dec SWP_AB
  486.   If SWP_AB Then Pop Proc
  487.   For I=1 To 14
  488.     For I2=1 To 14
  489.       If HF$(I,I2,0)<"C"
  490.         If HF$(I,I2,0)="A"
  491.           Put Block 12,I*16+1,I2*16+1
  492.           HF$(I,I2,0)="B"
  493.         Else 
  494.           If HF$(I,I2,0)="B"
  495.             Put Block 11,I*16+1,I2*16+1
  496.             HF$(I,I2,0)="A"
  497.           End If 
  498.         End If 
  499.       End If 
  500.     Next I2
  501.   Next I
  502.   SWP_AB=MAB(7)
  503.   SPIELER_ALT=SPIELER
  504.   SPIELER=1 : Proc TESTFELD
  505.   SPIELER=2 : Proc TESTFELD
  506.   SPIELER=SPIELER_ALT
  507. End Proc
  508. Procedure CHANCE_CROWN
  509. For I=1 To 12
  510.   For I2=1 To 12
  511.     For L=0 To 2
  512.       For L2=0 To 2
  513.         Inc A : X=Asc(HF$(I+L2,I2+L,0))
  514.         If Mid$(KF$(MA),A,1)="S" and(X=65 or X=79) Then Inc W
  515.         If Mid$(KF$(MB),A,1)="S" and(X=66 or X=79) Then Inc Z
  516.       Next L2
  517.     Next L
  518.     If W=5 or Z=5 Then Pop Proc
  519.     W=0 : Z=0 : A=0
  520.   Next I2
  521. Next I
  522. NOCROWN=-1 : FIN=-1
  523. End Proc
  524. Procedure ZEIT
  525.   N$="000" : A$="000"
  526.   If SPIELER=1 and TIME_A
  527.     Add ZS_A,-1,-1 To 59
  528.     If ZS_A=-1 and ZM_A>0
  529.       Dec ZM_A : ZS_A=59
  530.     End If 
  531.     Right$(N$,Len(Str$(ZM_A)-" "))=Str$(ZM_A)-" "
  532.     Right$(A$,Len(Str$(ZS_A)-" "))=Str$(ZS_A)-" "
  533.     For I=2 To 3
  534.       Put Block 1+Val(Mid$(N$,I,1)),281+(I-1)*5,76
  535.       Put Block 1+Val(Mid$(A$,I,1)),296+(I-1)*5,76
  536.     Next I
  537.     If PUN_A>0
  538.       Dec PUN_A : N$="000000"
  539.       Right$(N$,Len(Str$(PUN_A)-" "))=Str$(PUN_A)-" "
  540.       For I=2 To 6
  541.         Put Block 1+Val(Mid$(N$,I,1)),281+(I-1)*5,90
  542.       Next I
  543.     End If 
  544.     If ZM_A=0 and ZS_A=0 : TIME_A=0 : FIN=-1 : End If 
  545.   End If 
  546.   If SPIELER=2 and TIME_B
  547.     Add ZS_B,-1,-1 To 59
  548.     If ZS_B=-1 and ZM_B>0
  549.       Dec ZM_B : ZS_B=59
  550.     End If 
  551.     Right$(N$,Len(Str$(ZM_B)-" "))=Str$(ZM_B)-" "
  552.     Right$(A$,Len(Str$(ZS_B)-" "))=Str$(ZS_B)-" "
  553.     For I=2 To 3
  554.       Put Block 1+Val(Mid$(N$,I,1)),281+(I-1)*5,172
  555.       Put Block 1+Val(Mid$(A$,I,1)),296+(I-1)*5,172
  556.     Next I
  557.     If PUN_B>0
  558.       Dec PUN_B : N$="000000"
  559.       Right$(N$,Len(Str$(PUN_B)-" "))=Str$(PUN_B)-" "
  560.       For I=2 To 6
  561.         Put Block 1+Val(Mid$(N$,I,1)),281+(I-1)*5,186
  562.       Next I
  563.     End If 
  564.     If ZM_B=0 and ZS_B=0 : TIME_B=0 : FIN=-1 : End If 
  565.   End If 
  566.   Every On 
  567. End Proc
  568. Procedure PAUSE
  569.   Every Off 
  570.   Proc TILES[0,2,97,35,77]
  571.   Wait Key : Clear Key 
  572.   If MAB(10)=2 Then Sam Play 3,3,8300 : Wait 40
  573.   Put Cblock 1,45,109 : Del Cblock 
  574.   Colour 16,$FFF : Colour 17,$FFF : Colour 18,$FFF
  575.   If TIME_A or TIME_B Then Every 40 Proc ZEIT
  576. End Proc
  577. Procedure FINITO
  578.   Proc TILES[0,36,161,69,45]
  579.   Wait Key 
  580.   Fade 2 : Wait 32
  581.   Del Cblock : Screen Close 1
  582. End Proc
  583. Procedure STATISTIK
  584.   Unpack 14 To 0 : Screen Hide : Hide 
  585.   Ink 5 : Bar 45,45 To 275,200
  586.   Def Scroll 1,0,0 To 320,100,0,28 : Scroll 1
  587.   Def Scroll 1,0,100 To 320,220,0,-28 : Scroll 1
  588.   Ink 0,5 : Bar 0,191 To 320,220
  589.   Text 122,85,"Statistics"
  590.   Text 78,115,"Player 1  -  Player 2"
  591.   N$="000000" : A$="000000"
  592.   Right$(N$,Len(Str$(PUN_A)-" "))=Str$(PUN_A)-" "
  593.   Right$(A$,Len(Str$(PUN_B)-" "))=Str$(PUN_B)-" "
  594.   Text 158,133,":" : Text 86,133,N$ : Text 190,133,A$
  595.   If PUN_A>PUN_B Then Text 65,165,"The winner is Player 1 !"
  596.   If PUN_B>PUN_A Then Text 65,165,"The winner is Player 2 !"
  597.   If PUN_A=PUN_B Then Text 112,165,"A full draw !"
  598.   Proc BLEND
  599.   Repeat : Until Mouse Key or Fire(1)
  600.   Fade 2 : Wait 32 : Show 
  601. End Proc
  602. Procedure CPU_THINK
  603. Randomize Timer
  604. If SPIELER=1 and MAB(1)>1 and MAB(1)<4
  605.   Z=Rnd(10)
  606.   If MAB(1)=2
  607.     If Z>7 : Goto LETZTE_HILFE : End If 
  608.     If Z>3 : Goto SPIELER_MUSTER : End If 
  609.   End If 
  610.   If MAB(1)=3
  611.     If Z>5 : Goto SPIELER_MUSTER : End If 
  612.   End If 
  613. End If 
  614. If SPIELER=2 and MAB(4)>1 and MAB(4)<4
  615.   Z=Rnd(10)
  616.   If MAB(4)=2
  617.     If Z>7 : Goto LETZTE_HILFE : End If 
  618.     If Z>3 : Goto SPIELER_MUSTER : End If 
  619.   End If 
  620.   If MAB(4)=3
  621.     If Z>5 : Goto SPIELER_MUSTER : End If 
  622.   End If 
  623. End If 
  624. GEGNER_MUSTER:
  625.   Z2=-1
  626.   If SPIELER=1
  627.     If PUN_A-PUN_B>125 : Goto SPIELER_MUSTER : End If 
  628.   Else 
  629.     If PUN_B-PUN_A>125 : Goto SPIELER_MUSTER : End If 
  630.   End If 
  631. GEGNER_MUSTER_II:
  632.   If SPIELER=1 Then A$="B" : N$=KF$(MB) Else A$="A" : N$=KF$(MA)
  633.   For I=1 To 12
  634.     For I2=1 To 12
  635.       A=0 : Z=0 : W=0
  636.       For L=0 To 2
  637.         For L2=0 To 2
  638.           Inc A
  639.           If Mid$(N$,A,1)="S"
  640.             If HF$(I+L2,I2+L,0)=A$ : Inc Z : End If 
  641.             If HF$(I+L2,I2+L,0)="O" : W=-1 : End If 
  642.           End If 
  643.         Next L2
  644.       Next L
  645.       If Z>3 and W
  646.         Repeat 
  647.           Z=Rnd(8)+1
  648.           If Mid$(N$,Z,1)="S"
  649.             A=0
  650.             For L=0 To 2
  651.               For L2=0 To 2
  652.                 Inc A
  653.                 If Mid$(N$,A,1)="S" and Asc(HF$(I+L2,I2+L,0))=79
  654.                   CX=I+L2 : CY=I2+L
  655.                 End If 
  656.               Next L2
  657.             Next L
  658.           End If 
  659.         Until CX
  660.         Pop Proc
  661.       End If 
  662.     Next I2
  663.   Next I
  664.   If Z2=0 Then Goto LETZTE_HILFE
  665. SPIELER_MUSTER:
  666.   If SPIELER=1 Then A$="A" : N$=KF$(MA) Else A$="B" : N$=KF$(MB)
  667.   W_ALT=0 : CX=0 : CY=0 : A=0 : W=0 : TEST=0
  668.   For I=1 To 12
  669.     For I2=1 To 12
  670.       For L=0 To 2
  671.         For L2=0 To 2
  672.           If HF$(I+L2,I2+L,0)=A$ Then TEST=-1 : L=2 : L2=2
  673.         Next L2
  674.       Next L
  675.       If TEST
  676.         TEST=0
  677.         For L=0 To 2
  678.           For L2=0 To 2
  679.             Inc A
  680.             If Mid$(N$,A,1)="S"
  681.               If HF$(I+L2,I2+L,0)=A$ : Inc Z : Inc W : End If 
  682.               If HF$(I+L2,I2+L,0)="O" : Inc Z : End If 
  683.             End If 
  684.           Next L2
  685.         Next L
  686.         If Z=5 and W>W_ALT
  687.           W_ALT=W : I_ALT=I : I2_ALT=I2
  688.         End If 
  689.         A=0 : W=0 : Z=0
  690.       End If 
  691.     Next I2
  692.   Next I
  693.   If W_ALT
  694.     W=0
  695.     Repeat 
  696.       Z=Rnd(8)+1
  697.       If Mid$(N$,Z,1)="S"
  698.         For L=0 To 2
  699.           For L2=0 To 2
  700.             Inc A : Inc W : If W>1764 : Z2=0 : Goto LETZTE_HILFE : End If 
  701.             If A=Z and Asc(HF$(I_ALT+L2,I2_ALT+L,0))=79
  702.               CX=I_ALT+L2 : CY=I2_ALT+L
  703.             End If 
  704.           Next L2
  705.         Next L
  706.         A=0
  707.       End If 
  708.     Until CX
  709.     Pop Proc
  710.   End If 
  711. LETZTE_HILFE:
  712.   If Z2
  713.     Z2=0
  714.     If MAB(1)=1 or MAB(1)=4 and SPIELER=1 : Goto GEGNER_MUSTER_II : End If 
  715.     If MAB(4)=1 or MAB(4)=4 and SPIELER=2 : Goto GEGNER_MUSTER_II : End If 
  716.   End If 
  717.   If SPIELER=1 Then X=65 : N$=KF$(MA) Else X=66 : N$=KF$(MB)
  718.   Z=Rnd(1) : If Z=0 Then Z2=12 : Z3=1 : W=-1 Else Z2=1 : Z3=12 : W=1
  719.   For I=Z2 To Z3 Step W
  720.     For I2=Z2 To Z3 Step W
  721.       A=0 : Z=0
  722.       For L=0 To 2
  723.         For L2=0 To 2
  724.           Inc A
  725.           Y=Asc(HF$(I+L2,I2+L,0))
  726.           If Mid$(N$,A,1)="S" and(Y=X or Y=79) : Inc Z : End If 
  727.         Next L2
  728.       Next L
  729.       If Z=5
  730.         Repeat 
  731.           Z=Rnd(8)+1
  732.           If Mid$(N$,Z,1)="S"
  733.             For L=0 To 2
  734.               For L2=0 To 2
  735.                 If HF$(I+L2,I2+L,0)="O"
  736.                   CX=I+L2 : CY=I2+L : Pop Proc
  737.                 End If 
  738.               Next L2
  739.             Next L
  740.           End If 
  741.         Until True=0
  742.       End If 
  743.     Next I2
  744.   Next I
  745.   Repeat 
  746.     CX=Rnd(13)+1 : CY=Rnd(13)+1
  747.   Until HF$(CX,CY,0)="O"
  748. End Proc
  749. Procedure HELFE_MIR
  750.   Proc CPU_THINK
  751.   Proc MAUSMOVE[CX*16,CY*16]
  752.   Clear Key 
  753. End Proc
  754. Procedure REPLAY
  755.   Do 
  756.     A$=Inkey$
  757.     If A$<>""
  758.       If Asc(A$)=27 : Exit : End If 
  759.       If Asc(A$)=112 : Proc PAUSE : End If 
  760.     End If 
  761.     Inc I : X=Asc(Mid$(ABXY2$,I,1))-64
  762.     Inc I : Y=Asc(Mid$(ABXY2$,I,1))-64
  763.     Exit If X<1 or Y<1
  764.     Proc MAUSMOVE[X*16,Y*16]
  765.     Proc SETZE_STEIN[X,Y]
  766.   Loop 
  767.   Clear Key 
  768.   ABXY$=ABXY2$
  769.   MAB(2)=RAB(0) : MAB(5)=RAB(1) : MAB(7)=RAB(2)
  770.   MAB(8)=RAB(3) : MAB(9)=RAB(4)
  771.   Proc FINITO
  772.   Proc URSPRUNG
  773. End Proc
  774. Procedure MAUSMOVE[L,L2]
  775.   If L<XALT Then I2=-1 Else I2=1
  776.   For I=XALT To L Step I2
  777.     X Mouse=X Hard(I)+5 : For A=1 To 100 : Next A
  778.   Next I
  779.   If L2<YALT Then I2=-1 Else I2=1
  780.   For I=YALT To L2 Step I2
  781.     Y Mouse=Y Hard(I)+5 : For A=1 To 100 : Next A
  782.   Next I
  783.   XALT=L : YALT=L2
  784. End Proc
  785. Procedure LADE_SPIELFELD
  786.   Shared SCHALTER(),FILE$(),STATUS
  787.   Unpack 14 To 0 : Screen Hide : Limit Mouse 0,0 To 450,300
  788.   Reserve Zone 16 : Reset Zone : Restore 
  789.   Ink 4,5
  790.   Gosub LESEN
  791.   For I=1 To 9
  792.     Set Zone I,71,43+I*10 To 271,49+I*10
  793.   Next I
  794.   Set Zone 10,46,50 To 60,96
  795.   Set Zone 11,46,97 To 60,143
  796.   Set Zone 12,67,155 To 272,169
  797.   For I=1 To 4
  798.     Read SCHALTER(I)
  799.     Set Zone I+12,SCHALTER(I),189 To SCHALTER(I)+9,198
  800.   Next I
  801.   Def Scroll 1,70,52 To 272,142,0,-1
  802.   Def Scroll 2,70,52 To 272,142,0,1
  803.   Ink 4,5
  804.   If DISK Then Text 59,197,"Load" Else Text 114,197,"Save"
  805.   Z=1
  806.   Proc BLEND
  807.   Do 
  808.     Repeat : Until Mouse Key
  809.     Y=Hzone(X Mouse,Y Mouse)
  810.     If Y=13 and DISK or Y=14 and DISK=0 Then Y=0
  811.     If Y>12 Then Put Block 14,SCHALTER(Y-12),189
  812.     Ink 4,5
  813.     If Y>0 and Y<10 and Instr(FILE$(Y+Z-1),Chr$(160))=0
  814.       N$=FILE$(Y+Z-1)-".dat"
  815.       Ink 0,1 : Text 71,49+Y*10,N$+Space$(25-Len(N$))
  816.       Ink 4,5 : Text 71,165,N$+Space$(25-Len(N$))
  817.       Repeat : Until Mouse Key=0
  818.       Text 71,49+Y*10,N$+Space$(25-Len(N$))
  819.     End If 
  820.     If Y=10 and Z+8<Z2
  821.       For I=1 To 10 : Scroll 1 : Wait Vbl : Next I
  822.       Text 71,139,FILE$(Z+9)-".dat" : Inc Z
  823.     End If 
  824.     If Y=11 and Z>1
  825.       For I=1 To 10 : Scroll 2 : Wait Vbl : Next I
  826.       Dec Z : Text 71,59,FILE$(Z)-".dat"
  827.     End If 
  828.     If Y=12
  829.       Text 71,165,String$("_",25)
  830.       N$="" : Clear Key 
  831.       Repeat 
  832.         A$=""
  833.         While A$="" : A$=Inkey$ : Wend 
  834.         If Asc(A$)<33 and Asc(A$)<>8 and Asc(A$)<>13 : A$="_" : End If 
  835.         If Len(N$)<25 and Asc(A$)<>8 and Asc(A$)<>13 and Asc(A$)<160 : N$=N$+A$ : End If 
  836.         If Asc(A$)=8 and Len(N$)>0 : N$=Left$(N$,Len(N$)-1) : End If 
  837.         Text 71,165,N$+String$("_",25-Len(N$))
  838.       Until Asc(A$)=13
  839.       Text 71,165,N$+Space$(25-Len(N$)) : Clear Key 
  840.     End If 
  841.     If Y=13 and DISK=0 and Mouse Key
  842.       If Exist(N$+".dat")=True
  843.         Open In 1,N$+".dat"
  844.           For I=1 To 9
  845.             Input #1,MAB(I)
  846.           Next I
  847.           Input #1,MA
  848.           Input #1,MB
  849.           Input #1,ZM_A
  850.           Input #1,ZS_A
  851.           Input #1,PUN_A
  852.           Input #1,ZM_B
  853.           Input #1,ZS_B
  854.           Input #1,PUN_B
  855.           I=0
  856.           While Not Eof(1)
  857.             Input #1,N$
  858.             Inc I
  859.             For I2=1 To 14
  860.               HF$(I,I2,1)=Mid$(N$,I2,1)
  861.             Next I2
  862.           Wend 
  863.         Close 1
  864.         RAB(0)=MAB(2) : RAB(1)=MAB(5) : RAB(2)=MAB(7) : RAB(3)=MAB(8)
  865.         RAB(4)=MAB(9) : RAB(5)=MA : RAB(6)=MB
  866.         SPMO_A=MAB(1) : SPMO_B=MAB(4) : STONE_A=MAB(2) : ZM_A=MAB(3)
  867.         STONE_B=MAB(5) : ZM_B=MAB(6) : SWP_AB=MAB(7) : SPIELART=MAB(8) : SPIELER=MAB(9)
  868.         If ZM_A or ZS_A : TIME_A=-1 Else TIME_A=0 : End If 
  869.         If ZM_B or ZS_B : TIME_B=-1 Else TIME_B=0 : End If 
  870.         ABXY$="" : ABXY2$="" : STATUS=Y : Fade 2 : Wait 32 : Pop Proc
  871.       Else 
  872.         If DISK=0 : A$=" File not found...."+Space$(14) : Proc LAUFSCHRIFT[A$,228] : End If 
  873.       End If 
  874.     End If 
  875.     If Y=14 and DISK and Len(N$)>0 and Z2<50
  876.       If Exist(N$+".dat")=0 : Inc Z2 : FILE$(Z2)=N$ : Gosub LESEN : End If 
  877.       Open Out 1,N$+".dat"
  878.         Print #1,MAB(1)
  879.         Print #1,STONE_A
  880.         Print #1,ZM_A
  881.         Print #1,MAB(4)
  882.         Print #1,STONE_B
  883.         Print #1,ZM_B
  884.         Print #1,MAB(7)
  885.         Print #1,MAB(8)
  886.         Print #1,SPIELER
  887.         Print #1,MA-1
  888.         Print #1,MB-1
  889.         Print #1,ZM_A
  890.         Print #1,ZS_A
  891.         Print #1,PUN_A
  892.         Print #1,ZM_B
  893.         Print #1,ZS_B
  894.         Print #1,PUN_B
  895.         For I=1 To 14
  896.           N$=""
  897.           For I2=1 To 14
  898.             N$=N$+HF$(I,I2,0)
  899.           Next I2
  900.           Print #1,N$
  901.         Next I
  902.       Close 1
  903.     Else 
  904.       If Y=14 and DISK
  905.         A$=" No File selected...."+Space$(10) : Proc LAUFSCHRIFT[A$,236]
  906.       End If 
  907.     End If 
  908.     If Y=15
  909.       If Exist(N$+".dat")
  910.         Kill N$+".dat"
  911.         I=Match(FILE$(0),N$+".dat")
  912.         FILE$(I)=Chr$(160)
  913.         Gosub LESEN
  914.       Else 
  915.         A$=" File not found...."+Space$(14) : Proc LAUFSCHRIFT[A$,228]
  916.       End If 
  917.     End If 
  918.     If Y=16 Then Fade 2 : Wait 32 : Proc URSPRUNG : STATUS=Y : Pop Proc
  919.     If Y>12 Then Put Block 15,SCHALTER(Y-12),189
  920.   Loop 
  921.   LESEN:
  922.     Z2=0 : Z=1
  923.     Sort FILE$(0)
  924.     Repeat : Inc Z2 : Until FILE$(Z2)=Chr$(160) or Z2>49 : Dec Z2
  925.     For I=1 To 9 : Text 71,49+I*10,FILE$(I)-".dat"+Space$(25-Len(FILE$(I)-".dat")) : Next I
  926.   Return 
  927.   Data 46,102,158,230
  928. End Proc
  929. Procedure INFO
  930.   Unpack 14 To 0 : Screen Hide : Hide 
  931.   Proc URSPRUNG
  932.   Ink 5 : Bar 45,45 To 275,200
  933.   Ink 0,5
  934.   Text 138,60,"Paragon"
  935.   Text 41,90,"Amos by.....: Fran"+Chr$(231)+"ois Lionet"
  936.   Text 41,105,"Tested by...: Karsten Blank"
  937.   Text 41,120,"Idea by.....: Volker Stepprath"
  938.   Text 41,135,"Written by..: Volker Stepprath"
  939.   Text 161,157,"*"
  940.   Text 53,178,"Amos © 1990 Mandarin / Jawx"
  941.   Text 37,193,"Paragon © 1991 Depeche Software"
  942.   Proc BLEND
  943.   Repeat : Until Mouse Key
  944.   Fade 2 : Wait 32 : Show 
  945. End Proc
  946. Procedure BLEND
  947.   Screen Clone 1 : Screen To Front 0 : Auto View Off 
  948.   For I=1 To 16 : Colour I,0 : Next I : Screen Show 
  949.   View : Auto View On : Fade 2 To 1 : Wait 32 : Screen Close 1
  950. End Proc
  951. Procedure URSPRUNG
  952.   Dec MAB(1) : Inc MAB(2) : Inc MAB(3)
  953.   Dec MAB(4) : Inc MAB(5) : Inc MAB(6)
  954.   Inc MAB(7) : Dec MAB(8) : Dec MAB(9) : Dec MAB(10)
  955. End Proc
  956. Procedure TILES[X,Y,X2,Y2,Z]
  957.   Get Cblock 1,45,109,170,33
  958.   For I=1 To 4 : Colour I+7,$FFF : Next I
  959.   Screen Copy 1,X,Y,X2,Y2 To 0,Z,109
  960.   If NOCROWN
  961.     Ink 10 : Bar 52,115 To 197,132
  962.     Ink 8,10 : Text 79,123,"NO CHANCE TO"
  963.     Text 63,133,"COMPLETE A CROWN"
  964.   End If 
  965.   Wait 10
  966.   Fade 3 To 1 : Wait 64
  967. End Proc
  968. Procedure LAUFSCHRIFT[A$,L]
  969.   Def Scroll 3,1,230 To 320,242,-1,0 : Ink 1,0
  970.   Repeat : Until Mouse Key=0
  971.   For X=1 To L
  972.     If I2=0
  973.       Text 311,239,Mid$(A$,I,1)
  974.       Add I,1,1 To Len(A$)
  975.     End If 
  976.     If Mouse Key=0 Then Wait Vbl 
  977.     Scroll 3 : Add I2,1,0 To 7
  978.   Next X
  979.   Repeat : Until Mouse Key
  980.   For X=1 To 320 : Scroll 3 : Next X
  981. End Proc
  982. Procedure GAMES_GFX_TO_RAM
  983.   Unpack 16 To 0 : Screen Hide 
  984.   Colour 2,$B9B : Colour 3,$979 : Colour 4,$868
  985.   For I=0 To 9
  986.     Get Block 1+I,162+I*3,84,3,5,1
  987.   Next I
  988.   For I=0 To 2
  989.     Get Block 11+I,162+I*9,90,9,9,1
  990.   Next I
  991.   Get Block 14,189,90,11,11,1
  992.   Get Block 15,200,90,11,11,1
  993.   Get Block 16,292,70,13,13,1
  994.   Change Mouse 2
  995.   Hide : Music 1
  996.   Screen Open 1,320,200,8,Lowres
  997.   Flash Off : Curs Off : Change Mouse 2
  998.   For I=1 To 4 : Colour I,$0 : Next I
  999.   Cls 0 : Screen Copy 0,0,104,181,231 To 1,68,26
  1000.   Screen Copy 0,183,104,280,130 To 1,58,154 : Screen Copy 0,183,130,280,149 To 1,164,154
  1001.   Wait 20 : Fade 3 To 0 : Wait 320 : Fade 3 : Wait 70
  1002.   Cls 0 : Screen Copy 0,183,150,280,172 To 1,115,100 : Fade 3 To 0 : Wait 180 : Fade 3 : Wait 70
  1003.   Cls 0 : Screen Copy 0,183,172,311,192 To 1,100,100 : Fade 3 To 0 : Wait 240 : Fade 3 : Wait 70
  1004.   Cls 0 : Ink 1,0 : Text 80,120,"checking for games..." : Fade 3 To 0 : Wait 50
  1005.   For I=1 To 50 : FILE$(I)=Chr$(160) : Next I : I=0
  1006.   F$=Dir First$("*.*")
  1007.   While F$<>"" and I<51
  1008.     If Instr(F$,".dat")
  1009.       F$=Left$(F$,Len(F$-" ")-2) : F$=Right$(F$,Len(F$)-1)
  1010.       Inc I : FILE$(I)=F$
  1011.     End If 
  1012.     F$=Dir Next$
  1013.   Wend 
  1014.   For I=1 To 38
  1015.     Read KF$(I)
  1016.   Next I
  1017.   Fade 3 : Wait 50 : Show 
  1018.   Screen Close 1 : Screen Close 0
  1019. Data "SOOSSSOOS","SOOSOOSSS","SSOSSOOOS","SOSSSOSOO","SOOSSSSOO","SSSSOOSOO"
  1020. Data "SSOOSOOSS","SOOOSOSSS","SSOOSOSOS","SSSOOSOOS","SSOOSSOOS","SSOOOSSSO"
  1021. Data "SOSSSOOSO","SSOSOSOOS","SOOSSSOSO","SOSSOSOSO","SSOSOSSOO","SSSSOOOSO"
  1022. Data "SSOOSSOSO","SOOOSSOSS","SOSOSOSSO","SSSOSOOOS","SOSOSSOSO","SOOOSSSOS"
  1023. Data "SOOSOSSSO","SSOSOOOSS","SOOSSOSOS","SOSSSOOOS","SOOSOSOSS","SOOSSOOSS"
  1024. Data "SOOOSSSSO","SSSOSOOSO","SSOOOSOSS","SSSOOSOSO","SOSOSOOSS","SOSOSSOOS"
  1025. Data "SSOOSSSOO","SOSOSOSOS"
  1026. End Proc
  1027.